1. Field of the Invention
The present invention relates generally to an improved data processing system, and in particular to a computer implemented method, data processing system, and computer program product for maintaining state consistency among multiple state-driven file system entities when the file system entities become disconnected.
2. Description of the Related Art
A file system is a hierarchical structure of data in which files are stored within folders on a storage medium such as a hard disk. A part of the operating system maintains the file system and controls access to the files in the file system. The information stored in a distributed file system is spread out over multiple, networked, computing devices and is usually made available to multiple client devices. A distributed file system keeps the stored information consistent by coordinating access to the information when multiple devices wish to access, and to potentially change, the information. However, when distributed file systems perform operations directly on the client devices that initiate the operations, rather than sending each operation individually back to a central server for remote processing, this can presents a problem in keeping the file system data consistent. For instance, if two clients make conflicting changes to the file system state at the same time, then the file system enters an inconsistent state. A state of a file system is the condition of the file system consistency. One approach to this problem is to create resolution mechanisms that attempt to rectify inconsistencies after they occur. Thus, the distributed file system is allowed to enter an inconsistent state and is subsequently corrected, to whatever extent that is possible.
A consistency management framework (CMF) is composed of a consistency manager that provides operations for acquiring, returning, revoking, and relinquishing state guarantees of a file system. A consistency manager allows the coordination and communication of consistency state residing within each participating distributed file system. The advantage to using the consistency management framework is its ability to map and coordinate the state mechanisms of multiple file system state managers in order to create an environment of unified state. While the consistency management framework allows the distributed file system client-server state-driven relationship to remain consistent with the underlying file system by way of the active relationship of the distributed file system server (CM client) and the consistency manager, when the distributed file system server becomes inactive, all state consistency with the consistency manager and also with the distributed file system clients is lost. A distributed file system server may become inactive when the distributed file system server is made inactive or shutdown on the server. In other words, the server operating system is still running, but the distributed file system is stopped. This stoppage of the file system server is usually performed by the system administrator of the server. This stoppage will break the active link between the client and the distributed file system server.
When all state consistency is lost, the distributed client-server system would attempt to reacquire all previous state, and then use additional distributed file system change detection techniques to determine if the prior state held was still valid. However, in certain state circumstances, the client-server system may be unable to detect a violation of previous held state, and thus it must consider that state lost. For example, the file system server can grant WRITE delegations to a client, which means that the file system server is guaranteeing that no other entity will be able to READ or WRITE to the file as long as the client holds the WRITE delegation. In the case where the client is granted a WRITE delegation on file X, the file system server becomes inactive, and the file X is read (but not modified) by way of a local file system access path outside of the file system server. When the file system server becomes active, the client-server will be unable to detect that an unauthorized access to file X had occurred. In this case, since the violation cannot be detected, the client-server will need to lose/destroy all state on file X to avoid any data inconsistencies.